module.exports = {
  parserPreset: 'conventional-changelog-conventionalcommits',
  extends: ['@commitlint/config-conventional'],
  rules: {
    'subject-case': [0], // subject大小写不做校验

    // 类型枚举，git提交type必须是以下类型
    'type-enum': [
      2,
      'always',
      [
        'feat', // 新增功能
        'fix', // 修复缺陷
        'docs', // 文档变更
        'style', // 代码格式（不影响功能，例如空格、分号等格式修正）
        'refactor', // 代码重构（不包括 bug 修复、功能新增）
        'perf', // 性能优化
        'test', // 添加疏漏测试或已有测试改动
        'build', // 构建流程、外部依赖变更（如升级 npm 包、修改 webpack 配置等）
        'ci', // 修改 CI 配置、脚本
        'revert', // 回滚 commit
        'chore' // 对构建过程或辅助工具和库的更改（不影响源文件、测试用例）
      ]
    ]
  },
  prompt: {
    settings: {},
    messages: {
      skip: ':skip',
      max: '最多 %d 字符',
      min: '最少 %d 个字符',
      emptyWarning: '内容不能为空',
      upperLimitWarning: '超过最大限制',
      lowerLimitWarning: '低于最小限制'
    },
    questions: {
      type: {
        description: '选择你要提交的类型',
        enum: {
          feat: {
            description: '特性:     新增功能',
            title: '特性',
            emoji: '✨'
          },
          fix: {
            description: '修复:     修复缺陷',
            title: '修复',
            emoji: '🐛'
          },
          docs: {
            description: '文档:     文档变更',
            title: '文档',
            emoji: '📚'
          },
          style: {
            description: '格式:     代码格式（不影响功能，例如空格、分号等格式修正）',
            title: '格式',
            emoji: '💎'
          },
          refactor: {
            description: '重构:     代码重构（不包括 bug 修复、功能新增）',
            title: '重构',
            emoji: '📦'
          },
          perf: {
            description: '性能:     性能优化',
            title: '性能',
            emoji: '🚀'
          },
          test: {
            description: '测试:     添加疏漏测试或已有测试改动',
            title: '测试',
            emoji: '🚨'
          },
          build: {
            description: '构建:     构建流程、外部依赖变更（如升级 npm 包、修改 webpack 配置等）',
            title: '构建',
            emoji: '🛠'
          },
          ci: {
            description: '集成:     修改 CI 配置、脚本',
            title: '集成',
            emoji: '⚙️'
          },
          chore: {
            description: '其他:     对构建过程或辅助工具和库的更改（不影响源文件、测试用例）',
            title: '其他',
            emoji: '♻️'
          },
          revert: {
            description: '回退:     回滚 commit',
            title: '回退',
            emoji: '🗑'
          }
        }
      },
      scope: {
        description: '选择一个提交范围【可选】 (如：组件名/功能名 或 文件名)'
      },
      subject: {
        description: '填写简短精炼的变更描述 :\n'
      },
      body: {
        description: '填写更加详细的变更描述【可选】。使用 "|" 换行 :\n'
      },
      isBreaking: {
        description: '是否包含重大变更?'
      },
      breakingBody: {
        description: '对重大变更进行详细描述'
      },
      breaking: {
        description: '请描述重大变更'
      },
      isIssueAffected: {
        description: '当前变更是否与某个未关闭的issue有关?'
      },
      issuesBody: {
        description:
          'If issues are closed, the commit requires a body. Please enter a longer description of the commit itself'
      },
      issues: {
        description: '添加issue操作相关的内容 (e.g. "fix #123", "re #123".)'
      }
    }
  }
}
